<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>


    <meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>The Module Control</title>

<style type="text/css">
/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
	margin:0;
	padding:0;
}
</style>

<link rel="stylesheet" type="text/css" href="../../build/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="../../build/container/assets/skins/sam/container.css" />
<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="../../build/container/container-min.js"></script>


<!--begin custom header content for this example-->
<script type="text/javascript">
document.documentElement.className = "yui-pe";
</script>

<style type="text/css">
	.yui-module { border:1px dotted black;padding:5px;margin:10px; display:none; }
	.yui-module .hd { border:1px solid red;padding:5px; }
	.yui-module .bd { border:1px solid green;padding:5px; }
	.yui-module .ft { border:1px solid blue;padding:5px; }
    
    .yui-pe .yui-pe-content {
        display:none;
    }
</style>
<!--end custom header content for this example-->

</head>

<body class="yui-skin-sam">


<h1>The Module Control</h1>

<div class="exampleIntro">
	<p>This example looks at the "standard module format" used by many components in YUI to represent modular content on the page.  The Module Control is a JavaScript representation of a standard module, one that provides some basic plumbing for interacting with the head, body and foot sections of a standard module.  Convenience methods for showing, hinding and rendering the module are also included in the Module Control.</p>

<p>You're most likely to use the Module Control when building a custom widget; its importance in the YUI Library is as a foundation rather than as a UI control in its own right.</p>			
</div>

<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->

<script type="text/javascript">
    YAHOO.namespace("example.container");

    YAHOO.util.Event.onDOMReady(function () {

        // Remove progressively enhanced content class, just before creating the module
        YAHOO.util.Dom.removeClass("module1", "yui-pe-content");

        YAHOO.example.container.module1 = new YAHOO.widget.Module("module1", { visible: false });
        YAHOO.example.container.module1.render();

        YAHOO.example.container.module2 = new YAHOO.widget.Module("module2", { visible: false });
        YAHOO.example.container.module2.setHeader("Module #2 from Script");
        YAHOO.example.container.module2.setBody("This is a dynamically generated Module.");
        YAHOO.example.container.module2.setFooter("End of Module #2");
        YAHOO.example.container.module2.render();

        YAHOO.util.Event.addListener("show1", "click", YAHOO.example.container.module1.show, YAHOO.example.container.module1, true);
        YAHOO.util.Event.addListener("hide1", "click", YAHOO.example.container.module1.hide, YAHOO.example.container.module1, true);

        YAHOO.util.Event.addListener("show2", "click", YAHOO.example.container.module2.show, YAHOO.example.container.module2, true);
        YAHOO.util.Event.addListener("hide2", "click", YAHOO.example.container.module2.hide, YAHOO.example.container.module2, true);
    });
</script>

<div>
	<button id="show1">Show module1</button> 
	<button id="hide1">Hide module1</button>
</div>

<div id="module1" class="yui-pe-content">
	<div class="hd">Module #1 from Markup</div>
	<div class="bd">This is a Module that was marked up in the document.</div>
	<div class="ft">End of Module #1</div>
</div>

<div id="module2"></div>

<div>
	<button id="show2">Show module2</button> 
	<button id="hide2">Hide module2</button>
</div>
<!--END SOURCE CODE FOR EXAMPLE =============================== -->

</body>
</html>
